"""
字符串常用的属性和方法介绍
"""
# 1. 使用内置函数 dir 查看
l = dir(str)
print(l)

# 2. 使用内置函数 help 查看对象的某个方法的使用说明
print(help(str.join))

# 3. index 查看指定字符或字符串首次出现的索引
print(help(str.index))
s = "index 查看指定字符首次出现的索引 index"
index = s.index('n')
print(index)
# 也可以限制索引范围，在指定范围查看指定字符或字符串首次出现的索引
s_index = s.index('n', 5)
print(s_index)
i = s.index('nde', 1, 14)
print(i)

# 4. split 分割字符串得到列表
print(help(str.split))
split = s.split(" ")
print(split)
# 通过list()直接将字符串转列表
s1 = "123456789"
print(list(s1))
# 通过如下方式将报错：ValueError: empty separator
# print(s1.split(""))

# 5. join 根据指定字符或字符串拼接列表内容
print(help(str.join))
join = "-".join(split)
print(join)
join_join = " join ".join(split)
print(join_join)
l1 = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
join1 = "".join(l1)
print(join1)

# 6. format 根据占位符填充字符串
format_ = "format 根据占位符{0}填充字符串{1}"
print(format_.format('sss', 1111))
format_1 = "format 根据占位符{1}填充字符串{0}，反向填"
print(format_1.format('sss', 1111))
format_2 = "format 根据占位符{0}填充字符串{1}，反复填充{0} 扽扽扽 {1}"
print(format_2.format('sss', 1111))
# 限制输入内容。如果小于指定长度，默认就是左对齐，不足的地方自动填充空字符，超出自定长度不限制
and_ = "format 限制输入内容{0:10}and{1:5}"
print(and_.format('ss', 123443434567))
# 限制数据类型只能为整数，默认为右对齐
d_ = "format 限制数据类型只能为整数，填充长度为4。{0:4d}结束"
print(d_.format(1))
print(d_.format(11111))
# 限制数据类型为浮点数，默认四舍五入处理，超出指定长度丢弃
f_ = "format 限制数据类型为浮点数，填充长度为4。{0:.2f}结束"
print(f_.format(1.226))
print(f_.format(1.222333))
# 限制展示样式 之 ^ 居中对齐
format_3 = "format 限制输入内容，不足长度居中对齐{0:^10}啊"
print(format_3.format('没达到限定长度'))
print(format_3.format('我超过了限定的长度不会自动填充居中了吧'))
# 限制展示样式 之 > 右对齐
format_4 = "format 限制输入内容，不足长度右对齐{0:>10}啊"
print(format_4.format('没达到限定长度'))
print(format_4.format('我超过了限定的长度不会自动填充了吧'))
